package tg.model.gpsetting;

import java.sql.Timestamp;

/**
 * 玩法设定_限注
 * 这个设定基本上是混合的，比如所有单双大小可以绑定一个，多范围的却可以用一绑一的
 * @author NKW
 * 限注信息：单笔最小/最大，单码最大    每级都是针对会员的   
 *       飞单最大   是针对代理的，这个是否要分开？
 * 记录相对值
 * 默认没有代表跟上级设定一样的
 * 最小值的一定是正的，只能比上级大，初始值0
 * 最大值的一定是负的，只能比上级小，初始值99999999999
 * 查到上级的值就是它的范围 最小值的范围： [上级最小值 - 无穷大] ,最大范围：[0 - 上级最大值]
 * 
 * 多币种时如何 处理小数的问题？
 *    单币种全部用相对值来存储
 *    如果多币种就用绝对值，来存，只要跟上级不同币种，直接用绝对值来存，只要转换汇率之后符合上级设定就可以
 *    
 *    下注缓存中，所有代理都转成本级的币种来叠加注额，判断降倍/自动飞单等
 *    
 *    报表中要记录当时的汇率，每级报表是自己汇率的报表
 *    
 * ho有全场限注，如何解决？
 * 
 * 为了控制风险，ho还禁止相同ip只能登录2个（这个要在路口做）
 * 
 * ho允许取消下注，其实是可以做的，但是要限制短时间内不允许取消，比如刚取消过的，5秒内不允许再取消下注,不然会主机性能被玩的很惨，会是否取消下注用来站点属性用
 *     操盘功能ho不需要，所以直接在公司上要有此属性
 */
public class UserGpSetting_Limit {
	private String lsh;//用户流水号
	private int setting_id;//设定id,外键，关联设定组详细表的setting_id

	private double max_per_bet_club;//会员最大单笔下注,这个在自己填的彩票上比较有用
	private double min_per_bet_club;//会员最小单笔下注,这个在自己填的彩票上比较有用
	
	private double min_num_bet_club;//会员最小单码下注，一个码最小要下注多少，如果不够要补齐 ，ho这种才要，它有可能单笔比较小,放在【游戏属性】里设定,ho需要，快彩不需要
	private double max_num_bet_club;//会员最大单码下注，一个码最多能收多少,会员单码全场限注 
	/**
	 * 本字段是给代理的全场限注，代理本级的实货量超过此值时不再接收了，如果开放飞单倒是没关系了，也不会超过此值，就能正常接单了
	 * 这个做为站点一个  功能 拿来开放用的
	 */
	private double max_num_bet_agent;//代理最大单码接收量，一个码最多能收多少,代理单码全场限注    这个记录在会员上是无须设定的，要不要判断起作用，这个放在【游戏属性】里面
	
	private double max_fd;//上级限制下级最大飞单多少，如果想要单个玩法设定，可能要特殊
	
	/***
	 * 值类型,所有字段都是相同的类型
	 *    默认肯定是用相对值，如果本级和上级的币种不一样，就会用绝对值，用整数来表示
	 *    最底层往上取，如果本级是绝对值，那就停止向上了，如果是相对值要一直向上，   基础值的类型肯定是绝对值
	 * 从本级取值，如果本级是绝对值，就不需要往上了，如果是相对值，就往上加到绝对值的级才返回
	 * 在实现中，如果跟上级是同币种的，那就默认用相对值 类型，否则是不同币种的就用绝对值类型存储
	 * 如果像ho中，大股东才确定币种的话，那就默认大股东时插入绝对值类型的设定,如果是同币种的就不用插，让它自己设定，或者都有默认
	 * 如果上级要改动，相对值的好办，但是绝对值 的如何检测？这个得想个办法解决，或许就是只允许大股东不同币值，大股东和所有下级得同一币种，这样保证大股东以上不动就好，要动也要手动去修改大股东的限注
	 *    解决办法：
	 *       1.规定只能在大股东（或总监这级自由选择币种）其他级只能跟上级一样，这样绝对值就是在此级产生，要改时只能自己去改
	 *       2.报表可以看到公司层的，这样每个公司一个币种就没有问题了
	 *     
	 *
	 */
	private int value_type;//0相对值，1绝对值 

	private Timestamp last_update_time;//最后修改时间，更新时必须加传取值 时间，如果最后更新时间超过取值时间，那就得重新取，然后告诉用户有更新过（或上级有更新过），新值 是多少，是否提交
}
